const jwt = require('jsonwebtoken');
const secretKey = 'itheima No1 ^_^';
//在实际业务处理过程中，往往需要进行多次的数据库访问。这些访问的性质往往是相同的。采用Dao层可以对数据库访问进行封装，避免进行重复性的数据库访问开发操作。同时也降低了维护的成本
module.exports = class shoppingDao extends require('../model/shoppingModel') {
    //获取指定用户购物车信息
    static async findShopDao(req, res) {
        // console.log(req.headers)
        // const token = req.headers.authorization.split(' ')[1];
        // const decoded = jwt.verify(token, secretKey);
        // console.log('Decoded token:', decoded);
        const list = await this.getShopList(req,res)
        if (list.length>0){
            res.send({ status: 1, message: 'ok', successMessage: list})
        } else {
            res.send({ status: 0, message: 'error', errorMessage: "该用户暂时没有购买信息" })
        }
    }

    //增加
    static async addShopDao(req, res) {
        await this.addShop(req, res).then((r) => {
            //请求成功，res的反应
            res.send({ status: 1, message: 'ok', successMessage: r })
        }).catch((e) => {
            //请求失败，res的反应
            res.send({ status: 0, message: 'error', errorMessage: e })
        })
    }

    //删除
    static async deleteShopDao(req, res) {
        await this.deleteShop(req, res).then((r) => {
            //请求成功，res的反应
            res.send({ status: 1, message: 'ok', successMessage: r })
        }).catch((e) => {
            //请求失败，res的反应
            res.send({ status: 0, message: 'error', errorMessage: e })
        })
    }

    //修改
    static async chageShopDao(req,res) {
        await this.updateShop(req, res).then((r) => {
            //请求成功，res的反应
            res.send({ status: 1, message: 'ok', successMessage: r })
        }).catch((e) => {
            //请求失败，res的反应
            res.send({ status: 0, message: 'error', errorMessage: e })
        })
    }

}